package com.github.link2fun.system.modular.role.model.dto;


import lombok.Data;
import com.easy.query.core.annotation.Column;
import com.easy.query.core.annotation.Navigate;
import com.easy.query.core.enums.RelationTypeEnum;

import java.io.Serial;

import com.github.link2fun.support.core.domain.dto.RoleDTO;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import lombok.EqualsAndHashCode;
import com.github.link2fun.support.utils.uuid.IdUtils;
import com.github.link2fun.support.core.domain.BaseEntity;

import java.util.List;

import org.noear.solon.validation.annotation.NotBlank;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.easy.query.core.annotation.*;
import lombok.Data;
import org.noear.solon.validation.annotation.Length;
import com.github.link2fun.support.annotation.Excel;
import lombok.Setter;
import com.easy.query.core.annotation.ColumnIgnore;
import lombok.Getter;

import java.util.Date;
import java.time.LocalDateTime;

import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.easy.query.core.annotation.UpdateIgnore;

import java.io.Serializable;

/**
 * this file automatically generated by easy-query struct dto mapping
 * 当前文件是easy-query自动生成的 结构化dto 映射
 * {@link com.github.link2fun.support.core.domain.entity.SysRole }
 * @author easy-query
 */
@Data
public class SysRolePageDTO {


  /** 角色ID */
  @Excel(name = "角色序号", cellType = Excel.ColumnType.STRING)
  @JsonSerialize(using = ToStringSerializer.class)
  private Long roleId;
  /** 角色名称 */
  @Excel(name = "角色名称")
  private String roleName;
  /** 角色权限 */
  @Excel(name = "角色权限")
  private String roleKey;
  /** 角色排序 */
  @Excel(name = "角色排序")
  private Integer roleSort;
  /** 数据范围（1：所有数据权限；2：自定义数据权限；3：本部门数据权限；4：本部门及以下数据权限；5：仅本人数据权限） */
  @Excel(name = "数据范围", readConverterExp = "1=所有数据权限,2=自定义数据权限,3=本部门数据权限,4=本部门及以下数据权限,5=仅本人数据权限")
  private String dataScope;
  /** 菜单树选择项是否关联显示（ 0：父子不互相关联显示 1：父子互相关联显示） */
  private Boolean menuCheckStrictly;
  /** 部门树选择项是否关联显示（0：父子不互相关联显示 1：父子互相关联显示 ） */
  private Boolean deptCheckStrictly;
  /** 角色状态（0正常 1停用） */
  @Excel(name = "角色状态", readConverterExp = "0=正常,1=停用")
  private String status;
  /** 备注 */
  private String remark;
  /** 创建者 */
  @UpdateIgnore
  private String createBy;
  /** 创建时间 */
  @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
  @UpdateIgnore
  private LocalDateTime createTime;
  /** 更新者 */
  private String updateBy;
  /** 更新时间 */
  @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
  private LocalDateTime updateTime;


}
